/**
 * @Title: IBlogService.java
 * @Package com.zll.ccp.service.blog
 * @author zhanglinlu
 * @date 2019年5月4日 下午3:32:25
 */
package com.zll.ccp.service.blog;

import java.util.List;
import java.util.Map;

import com.github.pagehelper.PageInfo;
import com.zll.ccp.model.blog.Blog;
import com.zll.ccp.model.blog.BlogComment;
import com.zll.ccp.model.blog.BlogReply;
import com.zll.ccp.model.blog.BlogType;

/**
 * @ClassName: IBlogService
 * @Description: 博客service
 * @author zhanglinlu
 * @date 2019年5月4日 下午3:32:25
 * 
 */
public interface IBlogService {
    /**
     * @Title: getBlogById
     * @Description: 根据id取初始化博客数据
     * @param id 主键id
     * @return id不为空查出来，为空new一个返回
     */
    public Blog getBlogById(String id);

    /**
     * @Title: getBlogTypeList
     * @Description: 获取全部博客类型
     * @return 博客类型List
     */
    public List<BlogType> getBlogTypeList();

    /**
     * @Title: addBlog
     * @Description: 增加博客
     * @param blog 博客
     */
    public void addBlog(Blog blog);

    /**
     * @Title: updateBlog
     * @Description: 修改文章
     * @param blog 博客
     */
    public void updateBlog(Blog blog);

    /**
     * @Title: getBlogListByFilter
     * @Description: 根据筛选条件获取博客列表
     * @param param 筛选条件
     * @return 博客列表
     */
    public PageInfo<Map<String, Object>> getBlogListByFilter(Map<String, Object> param, int nowPage, int pagesize);

    /**
     * @Title: getBlogCountByFilter
     * @Description: 根据筛选条件获取博客总条数
     * @param param 筛选条件
     * @return 总条数
     */
    public long getBlogCountByFilter(Map<String, Object> param);

    /**
     * @Title: getUserIdsByName
     * @Description: 根据名字模糊查询id列表
     * @param name 用户名
     * @return id列表
     */
    public List<String> getUserIdsByName(String name);

    /**
     * @Title: deleteBlogByid
     * @Description: 根据id删除博客
     * @param id 主键id
     */
    public void deleteBlogByid(String id);

    /**
     * @Title: getBlogDTOById
     * @Description: 根据id联查博客内容
     * @param id
     * @return
     */
    public Map<String, Object> getBlogDTOById(String id);

    /**
     * @Title: addBlogComment
     * @Description: 增加博客评论
     * @param blogComment 博客评论
     */
    public void addBlogComment(BlogComment blogComment);

    /**
     * @Title: getBlogCommentsById
     * @Description: 根据博客id获取评论
     * @param blogId 博客id
     * @return
     */
    public List<Map<String, Object>> getBlogCommentsById(String blogId);

    /**
     * @Title: addBlogReply
     * @Description: 增加回复
     * @param blogReply
     */
    public void addBlogReply(BlogReply blogReply);

    /**
     * @Title: deleteCommentById
     * @Description: 根据id删除评论
     * @param id
     */
    public void deleteCommentById(String id);

    /**
     * @Title: deleteReplyById
     * @Description: 根据id删除回复
     * @param id
     */
    public void deleteReplyById(String id);

}
